package com.suray.wcs.service.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.suray.commin.enmus.DeviceStatus;
import com.suray.wcs.service.enums.PlcType;
import com.suray.wcs.service.system.entity.PlcDB;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author cooper
 * @since 2019-06-26
 */
public interface IPlcDBService extends IService<PlcDB> {

    /**
     * 根据条件分页查询plc数据
     *
     * @param plcDB PLC信息
     * @return PLC数据集合信息
     */
    List<PlcDB> selectPlcList(PlcDB plcDB);


    boolean updatePlc(PlcDB plcdb);

    boolean addPlc(PlcDB plcdb);

    int updateDisableById(PlcDB plcDB);

    PlcDB selectPlcByName(String plcName);

    PlcDB selectPlcById(Long plcId);

    /**
     * 当前PLC下是否存在PLC设备
     *
     * @param plcId PLC主键
     * @return
     */
    boolean hasChildByPlcId(Long plcId);

    /**
     * 校验plc名称是否重复
     *
     * @param plcDB plcDB
     * @return
     */
    boolean checkPlcNameUnique(PlcDB plcDB);

    /**
     * 根据网络地址获取对应的plc
     *
     * @param ip
     * @param port
     * @return
     */
    PlcDB findPlcDBByNetAddress(String ip, int port);

    PlcDB getLifterDeviceDB(int lifterType);

    /**
     * 根据是否禁用查询提升机PLC
     *
     * @param status
     * @return
     */
    List<PlcDB> selectLifterByStatus(String status);

    /**
     * 获取提升机信息
     * @return
     */
    List<PlcDB> getLifterInfosByType();
}
